package com.tanhua.admin.test;

import cn.hutool.log.Log;
import com.itheima.tanhua.enums.CommentType;
import com.itheima.tanhua.enums.LogType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.common.TemplateParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * @author Lff
 * @date 2022/4/6
 */
public class MySpringEl {
    public static void main(String[] args) {

        /*//设置文字模板 （通过注解属性可以获取）
        String template = "#{#username},早上好！";
        ExpressionParser parser = new SpelExpressionParser();//SPEL表达式解析器
        //通过EvaluationContext的setVariable可在上下文中设置变量
        EvaluationContext context = new StandardEvaluationContext();//设置El值
        context.setVariable("username", "哈哈");

        //解析表达式
        Expression expression = parser.parseExpression(template, new TemplateParserContext());

        //获取表达式的值
        System.out.println(expression.getValue(context,String.class));*/

        LogType logTypeLogin = LogType.LOG_TYPE_LOGIN;
        String expression1 = "#{#logTypeLogin}";
        ExpressionParser expressionParser = new SpelExpressionParser();// 指定spelExpressionParser解析器实现类
        Expression expression = expressionParser.parseExpression(expression1);//解析表达式
        expression.setValue("logTypeLogin", logTypeLogin);
        EvaluationContext context = new StandardEvaluationContext(expression);//设置对象模型基础。
        LogType value = (LogType) expression.getValue(context);
        System.out.println(value.getValue());
    }
}
